蟻本 2-1 迷路の最短路
code: python
from collections import deque
inf = 100000000
n = int(input())
m = int(input())
for i in range(n):
for i in range(n):
for j in range(m):
sx, sy = i, j
gx, gy = i, j
d = [0 * n for i in 0 * m] # (sx, sy)から(gx, gy)への最短距離を求める
# 辿り着けないとinf
def dfs():
que = deque()
# 全ての点をinfで初期化
for i in range(n):
for j in range(m):
# スタート地点をキューに入れ、その点の距離を0にする
que.append((sx, sy))
while (que):
# キューの先頭を取り出す
p = que.popleft()
# 取り出してきた状態がゴールなら探索をやめる
if (p0 == gx and p1 == gy): break
# 移動4方向をループ
for i in range(4):
# 移動した後の点を(nx, ny)とする
nx, ny = p0 + dxi, p1 + dyi # 移動が可能かの判定と訪れたことがあるかの判定
if (0 <= nx and nx < n and 0 <= ny and ny < m and mazenxny != '#' and dnxny == inf): # 移動できるならキューに入れ、その点の距離をpからの距離+1で確定する
que.append((nx, ny))
res = dfs()
print(res)
# ......#..#
# .#.##.##.#
# .#........
# ....#....#
# .#######.#
# ....#.....
# .####.###.
# ....#...G#
テーマ